package edu.mercer.sse.error;

/**
 * 
 * Logging Visitor interface.<p>
 *
 * @param <O> - Object result returned from logging visit
 * @param <T> - Throwable
 */

public interface ErrorLogging<O extends Object, T extends Throwable> 
{
	/**
	 * Log Throwable.<p>
	 * 
	 * Generic supporting any exceptions, errors as Throwable. Returns 
	 * 	generic of any object. Suggested usage: result of logging 
	 * 	operation.<p>
	 * 
	 * @param err - Throwable
	 * 
	 * @return  Generic bound to Object, result of the logging operation
	 */

	O visit( T err );	


}//interface